#ifndef RAY_H
#define RAY_H

#include "Vec3.h"

class Ray {
public:
	Ray();

	Ray(const Point3& origin, const Vec3& direction);

	Ray(const Point3& origin, const Vec3& direction, double time);

	inline const Point3& origin() const { return orig; }
	inline const Vec3& direction() const { return dir; }

	Point3 at(double t) const;

	double time()const;
private:
	Point3 orig;
	Vec3 dir;
	double tm;
};


#endif
